
public class LinkerSymbol implements Comparable<LinkerSymbol>{
	private String label;
	private String initial_load_address;
	private String asm_assigned_loc;
	private String linker_assigned_loc;
	private String length;
	private String relocation_adjustment_value;
	private String execution_start_address;
	
	public LinkerSymbol (String name, String load_addr, String asm_loc, String linker_loc, String len, String relocation_value, String exec_start) {
		this.label = name;
		this.initial_load_address = load_addr;
		this.asm_assigned_loc = asm_loc;
		this.linker_assigned_loc = linker_loc;
		this.length = len;
		this.relocation_adjustment_value = relocation_value;
		this.execution_start_address = exec_start;
	}
	
	public LinkerSymbol () {
		this.label = "";
		this.initial_load_address = "";
		this.asm_assigned_loc = "";
		this.linker_assigned_loc = "";
		this.length = "";
		this.relocation_adjustment_value = "";
		this.execution_start_address = "";
	}
	
	public String getLabel() {
		return this.label;
	}
	
	public String getLoadAddress() {
		return this.initial_load_address;
	}
	
	public String getAsmLocation() {
		return this.asm_assigned_loc;
	}
	
	public String getLinkerLocation() {
		return this.linker_assigned_loc;
	}
	
	public String getLength() {
		return this.length;
	}
	
	public String getRelocationValue () {
		return this.relocation_adjustment_value;
	}
	
	public String getExecutionStart() {
		return this.execution_start_address;
	}
	
	public void setLabel (String name) {
		this.label = name;
	}
	
	public void setLoadAddress (String load_addr) {
		this.initial_load_address = load_addr;
	}
	
	public void setAsmLocation (String loc) {
		this.asm_assigned_loc = loc;
	}
	
	public void setLinkerLocation (String loc) {
		this.linker_assigned_loc = loc;
	}
	
	public void setLength (String length) {
		this.length = length;
	}
	
	public void setRelocationValue (String relocation) {
		this.relocation_adjustment_value = relocation;
	}
	
	public void setExecutionStart (String execution) {
		this.execution_start_address = execution;
	}
	
	@Override
	public int compareTo(LinkerSymbol sym) {
		return this.label.compareTo(sym.getLabel());
	}

	@Override
	public String toString() {
		return label + '\t' + initial_load_address + '\t' + asm_assigned_loc + '\t' + linker_assigned_loc + '\t' + length + '\t' + relocation_adjustment_value + '\t' + execution_start_address;
	}
	
}
